查看原文
其他

​超越Transformer!AAAI 2021最佳论文:高效长序列预测模型

西南交一枝花 PaperWeekly 2022-03-17


©PaperWeekly 原创 · 作者|西南交一枝花

学校|西南交通大学CCIT实验室博士生

研究方向|NLP、时空数据挖掘



前言

AAAI 2021 结束有一段时间了,最佳论文奖项也公布了很久。但是,针对 Informer 的解读分享却未见几篇,由于笔者目前在做序列预测方面的工作,故在阅读后整理分享该论文的笔记。如有不同见解,望不吝交流。
Informer 的主要工作是使用 Transfomer 实现长序列预测(Long Sequence Time-Series Forecasting),以下称为 LSTF。针对 Transfomer 在长序列预测中的不足(平方时间复杂度、高内存占用和现有编解码结构的局限性),提出 ProbSparse 注意力机制、自注意力蒸馏技术和生成式解码器等模块解决或缓解上述问题。


论文标题:

Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting


论文链接:

https://arxiv.org/abs/2012.07436


源码链接:

https://github.com/zhouhaoyi/ETDataset



研究动机

笔者将本文的研究动机归为以下几点:
1. 首先,LSTF 任务具有重要研究意义,对政策计划和投资避险等多种需要长时预测的任务至关重要;
2. 目前现有方法多专注于短期预测,模型缺乏长期预测能力;
3. Transformer 具有较强捕获长距离依赖的能力,但是,在计算时间复杂度和空间复杂度以及如何加强长序列输入和输出关联上都需要优化。

针对第三点,展开来说香草变压器解决 LSTF 问题有三点不足:

1. 自注意力机制的平方级计算时间复杂度;

2. Transformer 通常堆叠多层网络,导致内存占用瓶颈;

3. step-by-step 解码预测,使得推理速度慢。

同时,上述三点对应 Informer 的主要贡献点:

1. ProbSparse self-attention,笔者称其为概率稀疏自注意力,通过“筛选”Query 中的重要部分,减少相似度计算;

2. Self-attention distilling,笔者称其为自注意力蒸馏,通过卷积和最大池化减少维度和网络参数量;

3. Generative style decoder,笔者称为生成式解码器,一次前向计算输出所有预测结果。

在介绍 Informer 模型结构之前,先对模型的输入、输出编解码器结构和输入表示进行介绍(对于编解码器熟悉的可以略过编解码器介绍)。


预备知识

3.1 输入输出形式化表示

输入: 时间 t

输出: 时间 t, 且

3.2 编解码结构

编解码结构通常这样设计:将输入 编码为隐层状态 ,然后将隐层状态解码为输出表示 。通常推理阶段采用 step-by-step 方式,即动态解码。具体为:输入上一步隐层状态 和上一步的输出计算 k+1 步的隐层状态 ,然后预测第 k+1 步的输出

3.3 输入表示

RNN 由于其递归循环结构可以捕获时序模式,但只依赖于时间序列。Vanilla Transformer 使用点乘注意力,没有循环结构,为捕获时序,使用位置编码。

在 LSTF 问题中,时序建模不仅需要局部时序信息还需要层次时序信息,如星期、月和年等,以及突发事件或某些节假日等。经典自注意力机制很难直接适配,可能会带来 query 和 key 的错误匹配问题,影响预测性能表现。


▲ 输入表示
如上图所示,位置嵌入分为了三种:
  1. 局部时间戳。即 Transformer 中的固定位置嵌入。计算方式为:, 。

  2. 全局时间戳。这里使用的可学习嵌入表示 。具体实现时,构建一个词汇表(文中给定 60 大小,以分钟最为最小单位,与图不对应),使用 Embedding 层表示每一个“词汇”。
  3. 为对齐维度,使用 1D 卷积将输入标量 转为向量 ,计算方法为:


方法介绍

▲ informer框架图


左边:编码过程,编码器接收长序列输入(绿色部分),通过 ProbSparse 自注意力模块和自注意力蒸馏模块,得到特征表示。(堆叠结构增加模型鲁棒性)。

右边:解码过程,解码器接收长序列输入(预测目标部分设置为 0),通过多头注意力与编码特征进行交互,最后直接预测输出目标部分(橙黄色部分)。

4.1 高效的自注意力机制

自荐一下,笔者以前分享过注意力机制,感兴趣的可以点击查看 Attention 注意力机制的前世今身

首先,回顾经典的自注意力机制。接收三个输入(query, key, value),使用缩放点积计算三者的公式为:。

接着,为进一步探索自注意力机制,按行说明自注意力计算方式。

  1. 分别为 Q, K, V 的第 i 行;
  2. 第i个query的注意力可以定义为核平滑的概率形式:
  3. ,计算该概率的时间复杂度为平方级,并且需要 的空间复杂度。
关于核平滑和自注意力之间的理论证明,可以阅读《Transformer Dissection: A Unified Understanding of Transformer’s Attention via the Lens of Kernel》[1] 。
作者通过实验去验证原自注意力机制存在稀疏性,即自注意力特征图的长尾分布现象。具体为,选取多头注意力的头 1 和头 7 的注意力得分,发现较少的点积对贡献绝大部分的注意力得分,也就是说其余部分的成对点积可以忽略。既然知道了有些部分可以不用计算,那么带了一个新问题,如何区分重要的部分呢?

▲ 注意力得分长尾分布

最后,针对如何区分注意力计算中哪些是可忽略的问题,作者进行了下面的工作。首先是 Query 稀疏度的度量方法;然后根据“筛选”后的 Query,提出 ProbSparse Self-attention,计算自注意力得分。

什么导致注意力图变为长尾分布?作者认为是突出的点积对(重要部分)导致对应的 query 的注意力概率分布远离均匀分布。若 接近均匀分布 ,那么其概率分布应该为 。要度量两种分布的距离,自然想到使用 KL 散度来度量。

经过简化后,作者定义第 i 个 Query 的稀疏性度量公式为:。如果第 i 个 query 的 M 值较大,说明它的注意力概率 p 相较其他部分差异性较大,比较大可能性是重要性部分。

基于上述度量方法,ProbSparse 自注意力计算方式可以表示为:,其中 为稀疏矩阵包含 TOP u 个 query。通过该优化,没对 query-key 计算需要 计算复杂度。有读者可能发现,计算 M 的计算复杂度为 的二次方。所以,作者采用近似思想进行了进一步的优化,该兴趣的读者可以阅读原文“Lemma1”部分。

4.2 编码器

目标:在内存占用限制内,允许编码器处理更长的序列输入。

▲ 编码器结构
编码器的主要功能是捕获长序列输入之间的长范围依赖。在输入表示部分,笔者已经介绍过输入 包含了三个部分(卷积后的序列输入,全局位置嵌入,局部位置表示)。此后将输入送至自注意力模块,值得注意的是这里采用的是自注意力蒸馏操作,可以减少网络参数,并且随着堆叠层数增加,不断”蒸馏“突出特征。
具体而言,”蒸馏”操作主要为使用 1D 卷积和最大池化,将上一层的输出送至魔改后的多头注意力模块之前做维度修剪和降低内存占用。

4.3 解码器

目标:一次前向计算,预测长序列输出。采用标准解码器结构,即堆叠两个相同的多头注意力层。不同的是,本文采用的是生成式预测(不是 step-by-step 方式)直接输出多步预测结果。此外,喂进解码器的输入也有所不同:。
其中, 表示占位符(预测值);表示开始“字符”,这个设置就比较有趣。文中说明该方法源于 NLP 技术中的动态解码(通常在 NLP 中,使用 “S” 作为解码开始输出字符;“E” 作为解码结束字符),作者将其扩展为生成式方式,即从靠近预测目标的输入序列中动态采样部分序列作为“开始 Token”。
Eg:预测 168 个点(7 天),将目标序列前五天作为“start-token”,


实验

5.1 数据集

使用两个作者整理的真实数据集和两个公开评测数据集。1. ETT(电力变压器温度)数据集,从中国两个不同的城市收集的两年数据,采样粒度包括 {1 小时,15 分钟};2. ECL(耗电量),收集了 321 个客户端的用电消耗,共22个月的数据;3. 天气数据集,美国 1600 各地区 4 年的气象数据,采样粒度为1小时。

5.2 基准模型

1.ARIMA 2. Prophet 3. LSTMa 4. LSTnet 5. DeepAR.

除此之外,为说明 ProbSparse 自注意力的有效性,对比使用原自注意力机制的 Informer 模型,以及变种 Reformer 工作。

5.3 超参设置

使用网格调参确定最优参数组合,优化器为 Adam,学习率从 1e-4 开始,每两个 epochs 降低 10 倍,共 10 个 epochs,Batch_size为32。
5.4 实验结果分析
实验结果分析是我们需要重点关注的部分。


▲ 单变量和多变量预测结果

无论是单变量的长序列预测还是多变量的长序列预测,Informer 均能在多数数据集上取得最优表现。

从单变量预测来看,1. 在两种评测指标上,Informer 能够取得不错的提升,并且随着预测序列长度的增加,推理速度和预测误差增长地较为缓慢;2. Informer 相较原始自注意力的 infomer,取得最优的次数最多(28>14),并且优于 LogTansformer 和 Reformer;3. Informer 相较 LSTMa 有巨大的提升,说明相较 RNN 类模型,自注意力机制中较短网络路径模型具有更强的预测能力。

从多变量预测来看,Informer 可以很方便地将单变量预测变为多变量预测,只需要调整最后的全连接层。相较单变量预测,Informer 取得明显提升的次数减少了,作者认为这是不同特征预测能力的不同引起的。
5.5 参数敏感度分析
这项分析比较有趣,通常我们会对模型中需要设置不同权重因子时,进行不同大小值的性能评测。作者这里对不同参数对模型最终性能表现进行了评测。主要分为了输入长度、ProbSparse 的采样因子和堆叠的网络层数。

5.6 消融实验

消融实验针对本文的三个创新点:ProbSparse 自注意力机制、自注意力蒸馏、生成式解码器。


总结

Informer 能获得 AAAI 的 Best Paper 确实有很多值得肯定的地方。首先,在阅读体验上,笔者很好地顺着作者的逻辑结构了解到本工作的研究动机、研究内容,讲故事的能力确实很重要。

此外,实验部分比较充实,能够很好地 cover 全文一直提及的 LTSF 的难点以及 Transformer 应用到 LTSF 上需要解决的问题。在研究内容上,笔者觉得能获得最佳论文奖项,肯定不是靠纯堆模型。确实,本文在 fundamental 内容(ProbSparse self-attention)上也做了很多探索研究。

值得学习!

参考文献

[1] https://arxiv.org/pdf/1908.11775.pdf

更多阅读




#投 稿 通 道#

 让你的论文被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得技术干货。我们的目的只有一个,让知识真正流动起来。


📝 来稿标准:

• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向) 

• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接 

• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志


📬 投稿邮箱:

• 投稿邮箱:hr@paperweekly.site 

• 所有文章配图,请单独在附件中发送 

• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通



🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧



关于PaperWeekly


PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存